home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
AGSNIB10.ZIP
/
NIB.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-09-07
|
22KB
|
1,257 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean TBOOLEAN001(1)
Boolean TBOOLEAN002(1)
Boolean TBOOLEAN003(1)
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean TBOOLEAN007(1)
DWord DWORD001
DWord DWORD002
Integer TINTEGER001(1)
Integer INTEGER002
Integer INTEGER003
String TSTRING001(14)
String STRING002
String STRING003
String STRING004
String TSTRING005(1)
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING012
String TSTRING014(2)
String TSTRING016(2)
String STRING024
Byte TBYTE001(1,1,255)
Int TINT001(1,1)
Int TINT002(1)
Int TINT003(1)
Int TINT004(1)
Int TINT005(1)
Int TINT006(1)
Int TINT007(1)
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Int INT014
Int INT015
Int INT016
Int INT017
Int INT018
Int INT019
Int INT020
Int INT021
Int INT022
Int INT026
Int INT027
Int INT028
Int INT030
Int INT032
Int INT033
Int INT034
Int INT035
Int INT037
Int INT038
Int INT045
Int INT046
Int INT047
Int INT048
Int INT050
Declare Function FUNCTION001() DWord
Declare Function FUNCTION002(String STRING013, Int INT042, Int INT043, Int INT044) Integer
Declare Procedure PROC001()
Declare Procedure PROC003(Int INT029)
Declare Procedure PROC004(Int INT031)
Declare Procedure PROC005()
Declare Procedure PROC006(Int INT036)
Declare Procedure PROC007(Int INT039, Int INT040, Int INT041)
Declare Procedure PROC008()
Declare Procedure PROC009(Integer INTEGER004)
Declare Procedure PROC010(Integer INTEGER005)
Declare Procedure PROC011()
Declare Procedure PROC012()
Declare Procedure PROC013(String STRING015)
Declare Procedure PROC014(Integer INTEGER006, Integer INTEGER007)
Declare Procedure PROC015(Int INT049, String STRING017, String STRING018, String STRING019, String STRING020, String STRING021, String STRING022, Boolean BOOLEAN008, String STRING023)
;------------------------------------------------------------------------------
FOpen 1, PPEPath() + "NIBBLES.CFG", 0, 0
FGet 1, STRING003
Tokenize STRING003
If ((Time() >= ToTime(GetToken())) && (Time() <= ToTime(GetToken()))) BOOLEAN006 = 1
For INT013 = 1 To 14
FGet 1, TSTRING001(INT013)
Next
FGet 1, STRING007
FGet 1, INT017
FGet 1, INT018
FGet 1, TINT006(0)
FGet 1, TINT006(1)
FGet 1, INT019
FGet 1, INT020
FGet 1, INT021
FGet 1, STRING008
FGet 1, STRING009
FGet 1, INT022
FGet 1, STRING010
FClose 1
INT013 = FUNCTION002("PLAYERS", 10, 2, 1)
If (INT013 == 0) PROC008()
INT010 = INT013
If (INT010 == 2) Then
TSTRING005(0) = STRING010
TSTRING005(1) = PCBMac("@USER@")
Else
TSTRING005(0) = PCBMac("@USER@")
Endif
INT012 = 1
TINT007(0) = 3
TINT007(1) = 3
INT013 = FUNCTION002("LEVEL", 5, 14, INT022)
If (INT013 == 0) PROC008()
INT016 = INT013
INT009 = 14 - INT013
If (INT010 == 2) Then
Color 15
Cls
StartDisp 1
DispFile PPEPath() + "PAGING", 1 + 4
STRING003 = "User : " + Trim(U_Name(), " ") + ", Level : " + TSTRING001(INT016)
AnsiPos 40 - Len(STRING003) / 2, 15
Color 15
SPrint STRING003
AnsiPos 1, 11
For INT013 = 1 To 79
STRING002 = KInkey()
If (STRING002 == " ") Goto LABEL001
If (STRING002 == "") Break
STRING002 = MInkey()
If (STRING002 == "") PROC008()
AnsiPos INT013, 11
Print "@X07▒"
Delay 1
If (BOOLEAN006) Then
If (ToReal(INT013) / 2 == INT013 / 2) Then
Sound 2000
Delay 1
Sound 5000
Delay 1
Sound 0
Endif
Continue
Endif
Color 15
AnsiPos 1, 16
For INT014 = 1 To 6
SPrintLn "███████████████████████████████████████████████████████████████████████████████"
Next
AnsiPos INT013 + 1, 11
Delay 2
AnsiPos 1, 16
For INT014 = 1 To 6
SPrintLn " "
Next
Next
Color 15
Cls
StartDisp 1
DispFile PPEPath() + "BUSY", 1 + 4
Wait
PROC008()
:LABEL001
Color 15
Cls
StartDisp 1
DispFile PPEPath() + "SYSOPOK", 1 + 4
Delay 30
Endif
DWORD001 = FUNCTION001()
While (DWORD001 == FUNCTION001()) Do
EndWhile
DWORD001 = FUNCTION001()
While (FUNCTION001() < DWORD001 + 4) Do
Inc INTEGER002
EndWhile
INTEGER002 = INTEGER002 / 4
StartDisp 1
PROC003(INT012)
:LABEL002
PROC014(0, 0)
If (INT010 == 2) PROC014(1, 0)
PROC012()
While (1) Do
PROC004(INT009)
PROC001()
If (BOOLEAN005) Then
PROC005()
BOOLEAN005 = 0
Endif
If (BOOLEAN004) Then
AnsiPos 1, 1
If (TBOOLEAN002(0) && !TBOOLEAN002(1)) Then
If (INT010 == 2) Then
PROC013("Level complete by " + TSTRING005(0))
Goto LABEL003
Endif
PROC013("Level complete!")
:LABEL003
PROC014(0, 1000 * (INT012 * 5))
Goto LABEL004
Endif
If (!TBOOLEAN002(0) && TBOOLEAN002(1)) Then
PROC013("Level complete by " + TSTRING005(1))
PROC014(1, 1000 * (INT012 * 5))
Goto LABEL004
Endif
If (TBOOLEAN002(0) && TBOOLEAN002(1)) Then
PROC013("Level complete by both players!")
PROC014(1, 1000 * (INT012 * 5))
PROC014(0, 1000 * (INT012 * 5))
Endif
:LABEL004
If (!TBOOLEAN001(0) && TBOOLEAN001(1)) Then
Dec TINT007(0)
If (TINT007(0)) Then
If (INT010 == 2) Then
If (TINT007(0) > 1) Then
PROC013(TSTRING005(0) + " crashed! " + String(TINT007(0)) + " lives left...")
Goto LABEL005
Endif
PROC013(TSTRING005(0) + " crashed! " + String(TINT007(0)) + " life left...")
:LABEL005
Goto LABEL006
Endif
If (TINT007(0) > 1) Then
PROC013("You crashed! " + String(TINT007(0)) + " lives left...")
Goto LABEL006
Endif
PROC013("You crashed! " + String(TINT007(0)) + " life left...")
:LABEL006
PROC003(INT012)
Goto LABEL002
Goto LABEL008
Endif
If (INT010 == 2) Then
PROC013(TSTRING005(0) + " crashed! Game over...")
Goto LABEL007
Endif
PROC013("You crashed! Game over...")
:LABEL007
Goto LABEL011
Endif
:LABEL008
If (!TBOOLEAN001(1) && TBOOLEAN001(0)) Then
Dec TINT007(1)
If (TINT007(1)) Then
If (TINT007(1) > 1) Then
PROC013(TSTRING005(1) + " crashed! " + String(TINT007(1)) + " lives left...")
Goto LABEL009
Endif
PROC013(TSTRING005(1) + " crashed! " + String(TINT007(1)) + " life left...")
:LABEL009
PROC003(INT012)
Goto LABEL002
Goto LABEL010
Endif
PROC013(TSTRING005(1) + " crashed! Game over...")
Goto LABEL011
Endif
:LABEL010
If (TBOOLEAN002(0) || TBOOLEAN002(1)) Then
Inc INT012
PROC003(INT012)
Goto LABEL002
Endif
End
Endif
For INT008 = 0 To INT010 - 1
If (INT010 == 2) Then
If (INT008 == 0) Then
If (!TBOOLEAN003(INT008)) STRING002 = KInkey()
Else
If (!TBOOLEAN003(INT008)) STRING002 = MInkey()
Endif
Else
If (!TBOOLEAN003(INT008)) STRING002 = Inkey()
Endif
If (STRING002 == "") Continue
If ((((STRING002 == "UP") || (STRING002 == "8")) || (STRING002 == "Z")) || (STRING002 == "z")) Then
If (TINT002(INT008) <> 3) TINT002(INT008) = 1
TBOOLEAN003(INT008) = 1
Continue
Endif
If ((((STRING002 == "RIGHT") || (STRING002 == "6")) || (STRING002 == "D")) || (STRING002 == "d")) Then
If (TINT002(INT008) <> 4) TINT002(INT008) = 2
TBOOLEAN003(INT008) = 1
Continue
Endif
If (((((STRING002 == "DOWN") || (STRING002 == "2")) || (STRING002 == "5")) || (STRING002 == "S")) || (STRING002 == "s")) Then
If (TINT002(INT008) <> 1) TINT002(INT008) = 3
TBOOLEAN003(INT008) = 1
Continue
Endif
If ((((STRING002 == "LEFT") || (STRING002 == "4")) || (STRING002 == "Q")) || (STRING002 == "q")) Then
If (TINT002(INT008) <> 2) TINT002(INT008) = 4
TBOOLEAN003(INT008) = 1
Endif
Next
EndWhile
Goto LABEL012
:LABEL011
If (INT010 == 1) Then
PROC015(0, "BLT1.DAT", "BLT1_1.", "BLT1_2.", "BLT1.PCB", "INTOP.1", "BEST.1", 1, U_Name())
Else
PROC015(0, "BLT2.DAT", "BLT2_1.", "BLT2_2.", "BLT2.PCB", "INTOP1.2", "BEST1.2", 0, STRING010)
PROC015(1, "BLT2.DAT", "BLT2_1.", "BLT2_2.", "BLT2.PCB", "INTOP2.2", "BEST2.2", 1, U_Name())
Endif
PROC008()
:LABEL012
End
;------------------------------------------------------------------------------
Procedure PROC001()
Int INT023
Int INT024
Int INT025
String STRING011
Real REAL001
For INT023 = 0 To INT010 - 1
TBOOLEAN003(INT023) = 0
PROC014(INT023, -1 * INT012)
Select Case (TINT002(INT023))
Case 1
Dec TINT001(INT023, 1)
Case 2
Inc TINT001(INT023, 0)
Case 3
Inc TINT001(INT023, 1)
Case 4
Dec TINT001(INT023, 0)
End Select
TBYTE001(INT023, 0, TINT005(INT023)) = TINT001(INT023, 0)
TBYTE001(INT023, 1, TINT005(INT023)) = TINT001(INT023, 1)
REAL001 = TINT001(INT023, 1)
STRING003 = ScrText(TINT001(INT023, 0), TINT001(INT023, 1) / 2, 1, 0)
If ((Asc(STRING003) >= 49) && (Asc(STRING003) <= 57)) Then
PROC014(INT023, 10 * (INT012 * 5 + Asc(STRING003) * 5))
If (INT011 == 10) Then
BOOLEAN004 = 1
TBOOLEAN002(INT023) = 1
Endif
TINT004(INT023) = TINT004(INT023) + (S2I(STRING003, 10) + 1) * 2
If (TINT004(INT023) > 250) TINT004(INT023) = 250
PROC006(INT011)
Inc INT011
Endif
STRING011 = ScrText(TINT001(INT023, 0), TINT001(INT023, 1) / 2, 1, 1)
INT024 = S2I(Mid(STRING011, 3, 1), 16)
INT025 = S2I(Mid(STRING011, 4, 1), 16)
STRING011 = Right(STRING011, 1)
AnsiPos TINT001(INT023, 0), TINT001(INT023, 1) / 2
If (STRING003 == "■") Then
TINT004(INT023) = TINT004(INT023) + 20
If (TINT004(INT023) > 250) TINT004(INT023) = 250
BOOLEAN005 = 1
Endif
If (InStr(String(REAL001 / 2), ".") || InStr(String(REAL001 / 2), ",")) Then
If (((STRING003 == "█") || (STRING003 == "▄")) || ((STRING003 == "▀") && (INT024 <> INT017))) Goto LABEL016
If (STRING003 == "▀") Then
If (INT025 <> And(TINT006(INT023), 15)) Then
Color INT025 * 16 - 128 + And(TINT006(INT023), 15)
Print "▄"
Else
Color TINT006(INT023)
Print "█"
Endif
Else
Color TINT006(INT023)
Print "▄"
Endif
Else
If (((STRING003 == "█") || (STRING003 == "▀")) || ((STRING003 == "▄") && (INT024 <> INT017))) Goto LABEL016
If (STRING003 == "▄") Then
If (INT025 <> And(TINT006(INT023), 15)) Then
Color INT025 * 16 - 128 + And(TINT006(INT023), 15)
Print "▀"
Else
Color TINT006(INT023)
Print "█"
Endif
Else
Color TINT006(INT023)
Print "▀"
Endif
Endif
Inc TINT005(INT023)
Inc TINT003(INT023)
TINT005(INT023) = TINT005(INT023) % 256
If (TINT003(INT023) > TINT004(INT023)) Then
Dec TINT003(INT023)
REAL001 = ToInt(TINT005(INT023)) - TINT004(INT023) - 1
If (REAL001 < 0) Then
REAL001 = 256 + REAL001
Endif
STRING011 = ScrText(TBYTE001(INT023, 0, REAL001), TBYTE001(INT023, 1, REAL001) / 2, 1, 1)
INT024 = S2I(Mid(STRING011, 3, 1), 16)
INT025 = S2I(Mid(STRING011, 4, 1), 16)
STRING011 = Right(STRING011, 1)
AnsiPos TBYTE001(INT023, 0, REAL001), TBYTE001(INT023, 1, REAL001) / 2
STRING003 = ScrText(TBYTE001(INT023, 0, REAL001), TBYTE001(INT023, 1, REAL001) / 2, 1, 0)
REAL001 = TBYTE001(INT023, 1, REAL001)
If (INT024 <> INT017) Then
Color INT017 * 16 + INT024 + 8
If (InStr(String(REAL001 / 2), ".") || InStr(String(REAL001 / 2), ",")) Then
Print "▀"
Goto LABEL013
Endif
Print "▄"
:LABEL013
Goto LABEL015
Endif
Color TINT006(INT023)
If (InStr(String(REAL001 / 2), ".") || InStr(String(REAL001 / 2), ",")) Then
If (STRING003 == "█") Then
Print "▀"
Goto LABEL014
Endif
Print " "
:LABEL014
Goto LABEL015
Endif
If (STRING003 == "█") Then
Print "▄"
Goto LABEL015
Endif
Print " "
Endif
:LABEL015
Continue
:LABEL016
TBOOLEAN001(INT023) = 0
BOOLEAN004 = 1
Next
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001() DWord
FUNCTION001 = PeekDW(MkAddr(64, 108))
EndFunc
INT026 = GetX()
INT027 = GetY()
INT028 = CurColor()
AnsiPos 1, 1
Print "@X0F" + "", " "
AnsiPos INT026, INT027
Color INT028
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Int INT029)
Int INT030
Color 15
Cls
AnsiPos 1, 1
Color INT017 * 16 + INT018
PrintLn "█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
For INT030 = 1 To 20
PrintLn "█ █"
Next
PrintLn "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
AnsiPos 36, 23
Print STRING008 + "LEVEL " + String(INT012)
TBOOLEAN001(0) = 1
TBOOLEAN001(1) = 1
TBOOLEAN002(0) = 0
TBOOLEAN002(1) = 0
BOOLEAN004 = 0
INT011 = 2
TINT004(0) = 5
TINT004(1) = 5
TINT005(0) = 0
TINT005(1) = 0
TINT003(0) = 0
TINT003(1) = 0
TBOOLEAN003(0) = 0
TBOOLEAN003(1) = 0
BOOLEAN005 = 0
Select Case (INT029)
Case 1
TINT001(0, 0) = 45
TINT001(0, 1) = 25
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 25
TINT002(1) = 4
For INT030 = 1 To 2
PROC005()
Next
PROC006(INT011 - 1)
Case 2
For INT030 = 20 To 60
PROC007(25, INT030, INT017 * 16 + INT019)
Next
For INT030 = 1 To 4
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 23
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 27
TINT002(1) = 4
Case 3
For INT030 = 9 To 39
PROC007(INT030, 19, INT017 * 16 + INT019)
PROC007(INT030, 59, INT017 * 16 + INT019)
Next
For INT030 = 1 To 6
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 24
TINT002(0) = 1
TINT001(1, 0) = 34
TINT001(1, 1) = 23
TINT002(1) = 3
Case 4
For INT030 = 4 To 25
PROC007(INT030, 19, INT017 * 16 + INT019)
PROC007(47 - INT030, 60, INT017 * 16 + INT019)
Next
For INT030 = 3 To 40
PROC007(35, INT030, INT017 * 16 + INT019)
PROC007(12, 79 - INT030, INT017 * 16 + INT019)
Next
For INT030 = 1 To 6
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 24
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 23
TINT002(1) = 4
Case 5
For INT030 = 12 To 36
PROC007(INT030, 20, INT017 * 16 + INT019)
PROC007(INT030, 59, INT017 * 16 + INT019)
Next
For INT030 = 23 To 56
PROC007(9, INT030, INT017 * 16 + INT019)
PROC007(39, INT030, INT017 * 16 + INT019)
Next
For INT030 = 1 To 8
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 23
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 23
TINT002(1) = 4
Case 6
For INT030 = 4 To 43
If ((INT030 > 26) || (INT030 < 20)) Then
PROC007(INT030, 10, INT017 * 16 + INT019)
PROC007(INT030, 20, INT017 * 16 + INT019)
PROC007(INT030, 30, INT017 * 16 + INT019)
PROC007(INT030, 40, INT017 * 16 + INT019)
PROC007(INT030, 50, INT017 * 16 + INT019)
PROC007(INT030, 60, INT017 * 16 + INT019)
PROC007(INT030, 70, INT017 * 16 + INT019)
Endif
Next
For INT030 = 1 To 8
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 23
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 23
TINT002(1) = 4
Case 7
For INT030 = 4 To 24 Step 2
PROC007(INT030, 39, INT017 * 16 + INT019)
Next
For INT030 = 25 To 43 Step 2
PROC007(INT030, 39, INT017 * 16 + INT019)
Next
For INT030 = 1 To 8
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 23
TINT002(0) = 2
TINT001(1, 0) = 34
TINT001(1, 1) = 23
TINT002(1) = 4
Case 8
For INT030 = 4 To 35
PROC007(INT030, 9, INT017 * 16 + INT019)
PROC007(47 - INT030, 19, INT017 * 16 + INT019)
PROC007(INT030, 29, INT017 * 16 + INT019)
PROC007(47 - INT030, 39, INT017 * 16 + INT019)
PROC007(INT030, 49, INT017 * 16 + INT019)
PROC007(47 - INT030, 59, INT017 * 16 + INT019)
PROC007(INT030, 70, INT017 * 16 + INT019)
Next
For INT030 = 1 To 8
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 45
TINT001(0, 1) = 23
TINT002(0) = 1
TINT001(1, 0) = 33
TINT001(1, 1) = 24
TINT002(1) = 3
Case 9
For INT030 = 6 To 41
PROC007(INT030, INT030 + 2, INT017 * 16 + INT019)
PROC007(INT030, INT030 + 30, INT017 * 16 + INT019)
Next
For INT030 = 1 To 8
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 46
TINT001(0, 1) = 10
TINT002(0) = 2
TINT001(1, 0) = 33
TINT001(1, 1) = 40
TINT002(1) = 4
Case Else
For INT030 = 4 To 43 Step 2
PROC007(INT030, 9, INT017 * 16 + INT019)
PROC007(INT030 + 1, 19, INT017 * 16 + INT019)
PROC007(INT030, 29, INT017 * 16 + INT019)
PROC007(INT030, 50, INT017 * 16 + INT019)
PROC007(INT030 + 1, 60, INT017 * 16 + INT019)
PROC007(INT030, 70, INT017 * 16 + INT019)
Next
For INT030 = 1 To 12
PROC005()
Next
PROC006(INT011 - 1)
TINT001(0, 0) = 75
TINT001(0, 1) = 5
TINT002(0) = 3
TINT001(1, 0) = 5
TINT001(1, 1) = 42
TINT002(1) = 1
End Select
EndProc
;------------------------------------------------------------------------------
Procedure PROC004(Int INT031)
Int INT032
Int INT033
INT033 = (INTEGER002 / 10) * INT031
For INT032 = 1 To INT033
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
Int INT034
Int INT035
While (1) Do
INT034 = Random(78)
INT035 = Random(22)
If (ScrText(INT034, INT035, 1, 0) == " ") Break
EndWhile
AnsiPos INT034, INT035
Color INT017 * 16 + INT020
Print "■"
EndProc
;------------------------------------------------------------------------------
Procedure PROC006(Int INT036)
Int INT037
Int INT038
If (INT036 > 9) Goto LABEL017
While (1) Do
INT037 = Random(76) + 1
INT038 = Random(21) + 1
If (ScrText(INT037, INT038, 1, 0) == " ") Break
EndWhile
AnsiPos INT037, INT038
Color INT017 * 16 + INT021
Print String(INT036)
:LABEL017
EndProc
;------------------------------------------------------------------------------
Procedure PROC007(Int INT039, Int INT040, Int INT041)
String STRING012
AnsiPos INT040, INT039 / 2
Color INT041
STRING012 = ScrText(INT040, INT039 / 2, 1, 0)
If (InStr(String(ToReal(INT039) / 2), ",") || InStr(String(ToReal(INT039) / 2), ".")) Then
If (STRING012 == "▀") Then
Print "█"
Else
Print "▄"
Endif
ElseIf (STRING012 == "▄") Then
Print "█"
Else
Print "▀"
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC008()
Color 15
Cls
AnsiPos 28, 11
Color 8
Gosub LABEL019
Color 7
Gosub LABEL019
Color 15
Gosub LABEL019
Color 7
Gosub LABEL019
Color 8
Gosub LABEL019
Color 15
Print " "
AnsiPos 33, 11
Color 8
Gosub LABEL018
Color 7
Gosub LABEL018
Color 15
Gosub LABEL018
Color 7
Gosub LABEL018
Color 8
Gosub LABEL018
Color 15
Print " "
Goto LABEL020
:LABEL018
Print "<┤EGiS CoRP'95"
Delay 2
Backup 14
Return
:LABEL019
Print "Code by Lone Runner/AGS"
Delay 2
Backup 23
Return
:LABEL020
AnsiPos 1, 1
End
EndProc
;------------------------------------------------------------------------------
Function FUNCTION002(String STRING013, Int INT042, Int INT043, Int INT044) Integer
Int INT045
Integer INTEGER004
INT045 = INT044
INT015 = INT042
Color 15
Cls
StartDisp 1
DispFile PPEPath() + STRING013, 1 + 4
PROC009(INT045)
While (1) Do
STRING002 = Inkey()
If (STRING002 <> "") Then
If (((STRING002 == "DOWN") || (STRING002 == "2")) || (STRING002 == "5")) Then
PROC010(INT045)
INT045 = INT045 + 1
If (INT045 == INT043 + 1) INT045 = 1
PROC009(INT045)
Continue
Endif
If ((STRING002 == "UP") || (STRING002 == "8")) Then
PROC010(INT045)
INT045 = INT045 - 1
If (INT045 == 0) INT045 = INT043
PROC009(INT045)
Continue
Endif
If (STRING002 == Chr(13)) Then
FUNCTION002 = INT045
Break
Continue
Endif
If (STRING002 == Chr(27)) Then
FUNCTION002 = 0
Break
Endif
Endif
EndWhile
EndFunc
;------------------------------------------------------------------------------
Procedure PROC009(Integer INTEGER004)
AnsiPos 22, INT015 + INTEGER004 - 1
STRING006 = ScrText(22, INT015 + INTEGER004 - 1, 36, 1)
Print "@X1F", ScrText(22, INT015 + INTEGER004 - 1, 36, 0)
PROC011()
EndProc
;------------------------------------------------------------------------------
Procedure PROC010(Integer INTEGER005)
AnsiPos 22, INT015 + INTEGER005 - 1
Print "@X0F", STRING006
PROC011()
EndProc
;------------------------------------------------------------------------------
Procedure PROC011()
AnsiPos 1, 22
Color 0
Print " "
Backup 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC012()
String TSTRING014(2)
Boolean TBOOLEAN007(1)
While (Inkey() <> "") Do
EndWhile
TBOOLEAN007(0) = 0
TBOOLEAN007(1) = 0
For INT013 = 11 To 13
TSTRING014(INT013 - 11) = ScrText(1, INT013, 79, 1)
Next
If (INT010 == 2) Then
Print STRING007
AnsiPos 5, 11
Print "█▀ User ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 5, 12
Print "█ Press a key when ready ! █"
AnsiPos 5, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
AnsiPos 45, 11
Print "█▀ Sysop ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 45, 12
Print "█ Press a key when ready ! █"
AnsiPos 45, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
Else
Print STRING007
AnsiPos 25, 11
Print "█▀ User ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 25, 12
Print "█ Press a key when ready ! █"
AnsiPos 25, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
Endif
While (1) Do
If ((((INT010 == 2) && TBOOLEAN007(0)) && TBOOLEAN007(1)) || ((INT010 == 1) && TBOOLEAN007(0))) Break
If (INT010 == 2) Then
STRING002 = KInkey()
Else
STRING002 = Inkey()
Endif
If ((STRING002 <> "") && !TBOOLEAN007(0)) Then
If (INT010 == 2) Then
Print STRING007
AnsiPos 45, 11
Print "█▀ Sysop ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 45, 12
Print "█ READY!! █"
AnsiPos 45, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
TBOOLEAN007(0) = 1
Goto LABEL021
Endif
Print STRING007
AnsiPos 25, 11
Print "█▀ User ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 25, 12
Print "█ READY!! █"
AnsiPos 25, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
TBOOLEAN007(0) = 1
Endif
:LABEL021
If (INT010 == 2) Then
STRING002 = MInkey()
If ((STRING002 <> "") && !TBOOLEAN007(1)) Then
Print STRING007
AnsiPos 5, 11
Print "█▀ User ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 5, 12
Print "█ READY!! █"
AnsiPos 5, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
TBOOLEAN007(1) = 1
Endif
Endif
EndWhile
Delay 18
For INT013 = 11 To 13
AnsiPos 1, INT013
PrintLn TSTRING014(INT013 - 11)
Next
AnsiPos 1, 23
While (OutBytes() > 0) Do
EndWhile
Delay 18
EndProc
;------------------------------------------------------------------------------
Procedure PROC013(String STRING015)
String TSTRING016(2)
While (Inkey() <> "") Do
EndWhile
For INT013 = 11 To 13
TSTRING016(INT013 - 11) = ScrText(1, INT013, 79, 1)
Next
Print STRING007
AnsiPos 5, 11
Print "█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
AnsiPos 5, 12
Print "█ █"
AnsiPos 5, 13
Print "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
AnsiPos 40 - Len(STRING015) / 2, 12
Print STRING015
While (Inkey() == "") Do
EndWhile
For INT013 = 11 To 13
AnsiPos 1, INT013
PrintLn TSTRING016(INT013 - 11)
Next
While (OutBytes() > 0) Do
EndWhile
EndProc
;------------------------------------------------------------------------------
Procedure PROC014(Integer INTEGER006, Integer INTEGER007)
Int INT046
Int INT047
Int INT048
TINTEGER001(INTEGER006) = TINTEGER001(INTEGER006) + INTEGER007
INT048 = CurColor()
INT046 = GetX()
INT047 = GetY()
If (INTEGER006 == 1) Then
AnsiPos 1, 23
Print STRING008 + String(TINTEGER001(INTEGER006))
Else
AnsiPos 79 - Len(String(TINTEGER001(INTEGER006))), 23
Print STRING008 + String(TINTEGER001(INTEGER006))
Endif
AnsiPos INT046, INT047
Color INT048
EndProc
;------------------------------------------------------------------------------
Procedure PROC015(Int INT049, String STRING017, String STRING018, String STRING019, String STRING020, String STRING021, String STRING022, Boolean BOOLEAN008, String STRING023)
Int INT050
String STRING024
STRING024 = "TMPBUL." + String(PcbNode())
FOpen 1, PPEPath() + STRING017, 0, 0
For INT013 = 1 To 10
FGet 1, STRING003
Tokenize STRING003
For INT014 = 1 To 4
STRING003 = GetToken()
Next
If (ToInteger(STRING003) < TINTEGER001(INT049)) Goto LABEL022
Next
FClose 1
Goto LABEL027
:LABEL022
INT050 = INT013
FClose 1
FCreate 2, PPEPath() + STRING024, 1, 0
FOpen 1, PPEPath() + STRING017, 0, 0
For INT014 = 1 To 10
If (INT014 == INT013) Then
FPutLn 2, Mixed(Replace(Replace(STRING023, " ", Chr(255)), ";", ":")) + ";" + TSTRING001(INT016) + ";" + String(INT012) + ";" + String(TINTEGER001(INT049))
Continue
Endif
FGet 1, STRING003
FPutLn 2, STRING003
Next
FPutLn 2, "---"
FPutLn 2, "WARNING: If you edit this file, don't forget to replace"
FPutLn 2, "ALL SPACES WITH CHR(225)'s or the score feature will NOT WORK AT ALL!!"
FCloseAll
Delete PPEPath() + STRING017
Rename PPEPath() + STRING024, PPEPath() + STRING017
FOpen 1, PPEPath() + STRING017, 0, 0
FCreate 2, PPEPath() + STRING024, 1, 0
FOpen 3, PPEPath() + STRING018, 0, 0
FOpen 4, PPEPath() + STRING019, 0, 0
FGet 3, STRING003
:LABEL023
If (Ferr(3)) Goto LABEL024
FPutLn 2, STRING003
FGet 3, STRING003
Goto LABEL023
:LABEL024
FPutLn 2
For INT013 = 1 To 10
FGet 1, STRING003
Tokenize STRING003
STRING003 = Space(5) + Mixed(GetToken())
STRING003 = STRING003 + Space(37 - Len(STRING003)) + GetToken()
STRING004 = GetToken()
STRING003 = STRING003 + Space(58 - Len(STRING003)) + Space(3 - Len(STRING004)) + STRING004
STRING004 = GetToken()
STRING003 = STRING003 + Space(67 - Len(STRING003)) + Space(9 - Len(STRING004)) + STRING004
FPutLn 2, STRING009 + STRING003
Next
FPutLn 2
FGet 4, STRING003
:LABEL025
If (Ferr(4)) Goto LABEL026
FPutLn 2, STRING003
FGet 4, STRING003
Goto LABEL025
:LABEL026
FCloseAll
If (Exist(PPEPath() + STRING020)) Delete PPEPath() + STRING020
Rename PPEPath() + STRING024, PPEPath() + STRING020
Color 15
Cls
If (INT050 == 1) Then
DispFile PPEPath() + STRING022, 0
Else
DispFile PPEPath() + STRING021, 0
Endif
Wait
:LABEL027
If (BOOLEAN008) Then
Color 15
Cls
DispFile PPEPath() + STRING020, 0
Wait
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 8 Cls
; 3 Wait
; 37 Color
; 252 Goto
; 251 Let
; 58 Print
; 5 PrintLn
; 153 If
; 7 DispFile
; 2 FCreate
; 6 FOpen
; 3 FClose
; 21 FGet
; 10 FPutLn
; 5 StartDisp
; 2 Delete
; 10 Gosub
; 2 Return
; 9 Delay
; 7 Inc
; 5 Dec
; 3 Tokenize
; 50 AnsiPos
; 3 Backup
; 3 Sound
; 1 SPrint
; 2 SPrintLn
; 2 Rename
; 2 FCloseAll
; 15 EndProc
; 2 EndFunc
;
;
; ■ Functions used :
;
; 1 -
; 55 *
; 22 /
; 1 %
; 171 +
; 41 -
; 82 ==
; 14 <>
; 42 <
; 40 <=
; 10 >
; 78 >=
; 135 !
; 90 &&
; 65 ||
; 8 Len(
; 4 Mid()
; 2 Right()
; 6 Space()
; 2 Ferr()
; 3 Chr()
; 3 Asc()
; 8 InStr()
; 1 Trim()
; 4 Random()
; 2 Time()
; 3 U_Name()
; 2 Replace()
; 6 Inkey()
; 22 String()
; 22 PPEPath()
; 1 PcbNode()
; 7 GetToken()
; 1 MkAddr()
; 1 Exist()
; 5 S2I()
; 2 GetX()
; 2 GetY()
; 4 And()
; 2 CurColor()
; 3 KInkey()
; 3 MInkey()
; 1 PeekDW()
; 11 ScrText()
; 1 ToInteger()
; 3 ToReal()
; 1 ToInt()
; 2 ToTime()
; 2 Mixed()
; 2 OutBytes()
; 2 PCBMac()
;
;------------------------------------------------------------------------------
;
; Analysis flags : p
;
; p - Peek in memory ■ 2
; Since a peek statement allows someone to read entire memory contents
; you may check this statement, however, this is usually not a risk
; ■ Search for : PEEK, PEEKW, PEEKDW
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 38 For/Next
; 12 While/EndWhile
; 61 If/Then or If/Then/Else
; 2 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------